<?php
use frontend\modules\yii2\widgets\layouts\markdown\Markdown;
use frontend\modules\yii2\widgets\layouts\example\Example;

$this->title = 'Yii的应用结构分类和详解';
$this->registerMetaTag([
    'name' => 'keywords',
    'content' => 'yii,yii2,框架,应用结构,model,controller,view,教程'
]);
$this->registerMetaTag([
    'name' => 'description',
    'content' => '对Yii2框架的应用结构进行详细分析'
]);
$this->registerMetaTag([
    'name' => 'author',
    'content' => 'chenzhiwei'
]);

$html = <<<HTML
# Yii的应用结构分类和详解
Yii框架是由很多不同的结构组合在一起的，这些应用结构在Yii的生命周期中承担各不相同的角色，如：`模型`负责数据，`控制器`负责处理请求，`视图`负责页面渲染。当然，Yii中的功能结构还有很多，本节中将详细介绍这些结构。

## 应用结构列表
我们对Yii中的应用结构大致可以分为以下几类：
- `应用主体`： 能全局范围内访问的对象， 管理协调组件来完成请求.
- `组件`： 在应用中注册的对象， 提供不同的功能来完成请求。
- `模块`： 包含完整 MVC 结构的独立包， 一个应用可以由多个模块组建。
- `模型`： 对数据表建立类模型，用面向对象的方式管理数据库中的数据；
- `控制器`： 接受并处理用户的请求；
- `视图`： 负责对html页面的渲染工作，会经常用到`小部件`和`前端资源管理器`；
- `小部件`： 使用面向对象方式创建复杂和可配置用户界面的单元；
- `过滤器`： Yii自带的`控制器`权限访问控制机制；
- `前端资源管理器`： 解决前端资源的依赖管理问题；
- `扩展`： 就是`vendor`目录下的包，利用别人发布的包完成你需要的功能；
HTML;

echo Markdown::widget(["content" => $html]);
